package br.com.sigad.persistencia.model;



import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;



/**
 * The persistent class for the documento database table.
 * 
 */
@Entity
@Table(name="documento")
public class DocumentoEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long codigo;

	@Column(name="data_criacao")
	private Date dataCriacao;

	private String descricao;

	@Column(name="local_armazenamento_fisico")
	private String localArmazenamentoFisico;

	@Column(name="periodo_permanencia")
	private Integer periodoPermanencia;

	@OneToOne(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
	@JoinColumn(name="codigo_representacao_digital")
	private RepresentacaoDigitalEntity representacaoDigital;

	//bi-directional many-to-one association to TipoDocumentoEntity
	@ManyToOne(fetch=FetchType.LAZY,cascade=CascadeType.ALL )
	@JoinColumn(name="codigo_tipo_documento")
	private TipoDocumentoEntity tipoDocumento;

	public DocumentoEntity() {
	}

	public Long getCodigo() {
		return this.codigo;
	}

	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}

	public Date getDataCriacao() {
		return this.dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getLocalArmazenamentoFisico() {
		return this.localArmazenamentoFisico;
	}

	public void setLocalArmazenamentoFisico(String localArmazenamentoFisico) {
		this.localArmazenamentoFisico = localArmazenamentoFisico;
	}

	public Integer getPeriodoPermanencia() {
		return this.periodoPermanencia;
	}

	public void setPeriodoPermanencia(Integer periodoPermanencia) {
		this.periodoPermanencia = periodoPermanencia;
	}

	public RepresentacaoDigitalEntity getRepresentacaoDigital() {
		return this.representacaoDigital;
	}

	public void setRepresentacaoDigital(RepresentacaoDigitalEntity representacaoDigital) {
		this.representacaoDigital = representacaoDigital;
	}

	public TipoDocumentoEntity getTipoDocumento() {
		return this.tipoDocumento;
	}

	public void setTipoDocumento(TipoDocumentoEntity tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}

}